Modern computer systems are utilized by users to perform specific tasks or to solve specific problems. Typically, the computer system is programmed to perform these tasks or solve these problems. Such a program is referred to as an application program. Application programs may include data base programs, multimedia knowledge base programs, word processing programs and spread sheet programs. Application programs provide a user with an interface to enable the user of the application program to communicate with the program, for example, to give commands to execute instructions and access information stored in memory. Examples of user interfaces include pulldown menus, highlighted command prompts, graphical icons and identifiable commands. An application program may include its own user interface or take advantage of another program that provides a user interface to be used in conjunction with the application program.
User interfaces may allow a user to access stored information in various ways. One method is to provide, on request, a list of all the topics or files available for use in conjunction with the application program. These topics or files may be listed in a certain order, for example, alphabetical order or order of creation. The user can then select which topic or file the user desires to access. A refinement of this method is to list only those topics or files in a subcategory specified by the user of the application program.
Another approach is to create a hierarchical structure containing menus and the information to be accessed. The user is shown on a computer screen a main menu of choices, each with sub-menus, which allows the user to move through the hierarchical menu/data structure until the relevant topic or file is displayed. For example, an application program may provide users with access to a knowledge base by displaying a main menu listing the broad topics covered by the knowledge base. Each broad topic then has a sub-menu listing more specific topics. The listings in a sub-menu may include further sub-menus or, if the topic is sufficiently refined, the information itself. When the desired topic is reached, the monitor will display a screen with the information on that topic. Where the information on the topic comprises more than one screen, the user is able to access that information using interface commands such as "page down" or "next" commands. The displayed topic, in addition to displaying information, may provide further choices to access subtopics of that topic. Often, the user also has the option of accessing a general index or a previous topic or menu from any displayed topic. For example, if a user is accessing information on a certain topic and wishes to access information about a more specific or less specific topic mentioned in the information currently displayed, the user has the capability of being able to instantly retrieve such information by giving the relevant command or series of commands.
Information which is accessed in a hierarchical fashion can be described as having a main menu at the top of the hierarchy, with nodes at a next level representing the various choices available from the main menu. Each node can be referred to as a sub-menu (having further nodes) or a series of units of information where each unit is displayed as required on a section of the computer screen (called a window). Certain units of information may also enable a user to choose other nodes in the hierarchy with related information.
The units of information may be screens of knowledge taken from a knowledge base, comprising text, graphics, animation, audio, and video.
A problem users encounter when utilizing a hierarchial data structure to access information in complex systems is tracking where in the hierarchy the information currently displayed is located. When a user is confused about his or her location in the structure, the user is unable to take full advantage of accessing more specific or less specific or related information, because the user cannot determine what information is available for review and how that information can be accessed. The user may have the option of accessing a general alphabetical index or returning to the main menu and accessing the information by moving to the desired information through the hierarchical structure, but doing so is inefficient and is not an effective use of the data structure. The advantage of having related information accessable from the display is lost if the user must keep leaving the hierachical data structure to access the related information. The user must leave the screen of information to access the index and then return to the hierachical data structure to access further information. If the user must keep leaving the hierachical structure to find and access related data, the advantage of using the hierachical data structure is lost. Further, the user may wish to return to a screen previously displayed containing more general information or a screen higher than the current screen in the data structure hierarchy. If the user is unsure of the name of the screen or where that screen is located relative to the current screen of information, this will be a difficult task to accomplish. Even if the user remembers such information, returning to that screen often involves the user having to give a complex series of instructions.
Specialized high level languages and software applications have attempted to address the foregoing problems encountered by users by designing suitable user interfaces that allow a user to see the structure of the information or access information in non-sequential way. One such type of user interface involves instructions that cause a listing of the file names or screen names available to the user and describing which of those the user has previously accessed to be displayed on the screen. This system, however, does not provide a representation to the user showing the hierarchical structure of the information and the path by which the user has progressed through this hierarchy. The user is unable to determine from such a listing where the current screen of information is located in the hierarchy.
A second type of user interface designed to address the foregoing problem involves displaying miniature representations of the screens that the user has accessed in the past in the order that the user has accessed them. The user can then see the sequence of screens viewed prior to the current screen of information and can decide to return to a previous screen by selecting that screen using an input-output device such as a mouse. The miniature representations are displayed on a separate screen generally replacing the current screen of information. This type of user interface also does not show the hierarchical structure of the information being accessed. All screens are displayed in a linear fashion and the user has no knowledge of the level in the hierarchy at which each miniature screen is located or the level of one screen of information in relation to other screens.
A third type of user interface available, often used in accessing a knowledge base, is the use of a back-track icon that allows a user to retrace previous steps through the knowledge base. The user chooses the back-track icon which then causes the screen of information previous to that which the user is currently accessing to be displayed. Through the repetitive use of the back-track icon, a user can then retrace the steps taken through the knowledge base until the required screen is displayed. However, this method does not provide a visual display of the hierarchical structure of the information that is available. The user at any particular stage of operation would be unsure where in the hierarchy the current screen of information is located. Access to any prior screen of information can not be done instantaneously as all intermediate screens must be traversed.
When using a separate application program, such as a knowledge base described above, accessing the record of the user's path through the information structure generally requires leaving the knowledge base, accessing the record of the user's path and then returning to the knowledge base to obtain the further required information.
A further type of interface available is a "map" showing the structure of the whole, or a portion, of the knowledge base or file system. A disadvantage of using the map is that the user must leave the current location in the knowledge base or file system to view the map. The map replaces the information the user was accessing. The user must then return to the knowledge base or file system to obtain further information. Moreover, if the knowledge base or file system is complex, the map is either too large to fit on one screen, or if modified to do so, is not sufficiently detailed to be helpful to the user in accessing all the information.
Previous user interfaces do not continuously display where the user is located in a hierarchical information structure with that display also providing direct access capability to other parts of the hierarchical information structure.
In those cases where a record of the user's sequence through the information structure is maintained, the record is not continuously and automatically updated allowing the user to carry on, at the same time, the operation of the application program. Where such a record is maintained, it must be specially accessed and the record does not give information as to the hierarchical structure of the information.